package com.dao;

import java.util.List;

import com.beans.RoleInfo;
import com.jdbc.DBUtil;

public class RoleDao {
	/**
	 *查询角色列表
	 * @return 角色列表
	 */
	public List<RoleInfo> getRoleList(){
	 
		return DBUtil.getList("select * from RoleInfo", RoleInfo.class);
	 
	}
 	/**
 	 * 根据角色id查询角色信息
 	 * @param roleId 角色id
 	 * @return 角色信息
 	 */
	public RoleInfo getRoleInfoById(int Id) {
	
		return DBUtil.getOneObject("select * from roleInfo where Id=?", RoleInfo.class, Id);
	}
	/**
	 * 更新角色信息,先删除旧的,再添加新的
	 * @param roleId 角色id
	 * @param menuIds 角色对应的菜单
	 */
	public void updateRoleMenu(int roleId, String[] menuIds) {
		DBUtil.update("delete from roleMenu where roleId=?", roleId);
		for(String menuId:menuIds) {
			DBUtil.update("insert into roleMenu (roleId,menuId) values (?,?)", roleId,menuId);
		}	
		
	}
	/**
	 * 根据角色ID查询出其所有的权限ID,
	 * @param roleId 角色ID
	 * @return str 将权限ID用,号隔开拼成字符串
	 */
	public String getMenuIdStr(int roleId) {
		String sql="select menuId from roleMenu where roleId=?";
		List<Object> menuList=DBUtil.getScalarList(sql, roleId);
		String str="";
		if(!menuList.isEmpty()) {
			for(Object menuid:menuList) {
				str+=menuid+",";
			}
			str=str.substring(0, str.length()-1);
		}
		return str;
	}
	// 添加用户角色信息
	public int addRole(RoleInfo role) {
		String sql = "insert into roleInfo (roleName,des) values (?,? ) ";
		return DBUtil.update(sql, role.getRoleName(), role.getDes());
	}
	//更新用户角色信息
		public int updateAdminRole(int roleId, int adminId) {
			String sql="update adminInfo set roleId=? where id=?" ; 
			return DBUtil.update(sql, roleId,adminId);
		}
	//查询某个角色的用户有几个(用于角色删除)
	public int getAdminCountByRoleId(int roleId) {
		return new Integer(DBUtil.getScalar("select count(*) from adminInfo where roleId=?", roleId)+"");
	}
	//根据角色id 删除角色
		public void deleteRole(int roleId) {
			DBUtil.update("delete from roleMenu where roleid=?", roleId);
			DBUtil.update("delete from roleInfo where id=?",roleId);
			
		}
}
